// let s = new Set();
// console.log(s);

// let s = new Set([1, 2, 3, 2]);
// console.log(s);
// s.add('yk').add('jj') // 可以链式添加
// s.delete(2)
// s.clear() //清空
// console.log(s.has('yk'));// true
// console.log(s.size); // 获取数组长度
// 应用场景
// 数组去重
// let arr = [1, 2, 3, 4, 2, 3]
// let s = new Set(arr);
// console.log(s);

// 合并去重
let arr1 = [1, 2, 3, 4]
let arr2 = [2, 3, 4, 5, 6]
let s = new Set(...arr1, ...arr2);
console.log(s);
console.log([...s]); // 通过set得到数组
console.log(Array.from(s)); //array.from 转化为数组

// 数组求交集
let s1 = new Set(arr1)
let s2 = new set(arr2)
let result = new Set(arr1.filter(item => s2.has(item)))
console.log(Array.from(result));

// 差集
let arr3 = new Set(arr1.filter(item => !s2.has(item)))
let arr4 = new Set(arr2.filter(item => !s1.has(item)))
console.log([...arr3, arr4]); 


// weakSet
let ws = new WeakSet(); // 只能添加对象
ws.add({ 
  name: 'mooc'
})

//垃圾回收机制 GC  
// weakset 弱引用  用于临时存放对象
